package com.clstu.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 演示正则 限定符的使用
 */
public class RegExp02 {
    public static void main(String[] args) {
        String content = "a1111111aaaaaaahello1world";
//        String regStr = "a{3}";//匹配aaa
//        String regStr = "1{4}";//匹配1111
//        String regStr = "\\d{2}";//匹配任意两个连续的数字
//        String regStr = "a{3,4}";//匹配aaa/aaaa默认贪婪模式(匹配结果尽量长)
//        String regStr = "1{3,4}";//匹配111/1111默认贪婪模式(匹配结果尽量长)
//        String regStr = "1{4,5}";//匹配1111/11111默认贪婪模式(匹配结果尽量长)
//        String regStr = "\\d{2,5}";//匹配长度2~5的数字字符串 默认贪婪模式(匹配结果尽量长)
//        String regStr = "\\d{2,}";//匹配长度2~n的数字字符串 默认贪婪模式(匹配结果尽量长)

//        String regStr = "1+";//1~n个1(默认贪婪匹配)
//        String regStr = "a+";//1~n个a(默认贪婪匹配)
//        String regStr = "1*";//0~n个1(默认贪婪匹配)
//        String regStr = "a*";//0~n个a(默认贪婪匹配)

        //出现0~1次
//        String regStr = "a1?";//?表示出现0次或者一次,即匹配 a/a1 ?默认只和前面的一个字符绑定,可以用小括号增加范围
//        String regStr = "a?";//匹配 a 或者 ""(a出现0次或1次,默认贪婪匹配)
//        String regStr = "1?";//匹配 1 或者 ""(1出现0次或1次,默认贪婪匹配)
        String regStr = "\\d?";//匹配 [0-9] 或者 ""([0-9]出现0次或1次,默认贪婪匹配)



        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(content);
        int i=0;
        while (matcher.find()){
            System.out.println("找到:"+matcher.group(0));
            i++;
        }
        System.out.println("length="+content.length());
        System.out.println("i="+i);
    }
}
